package day_2022_7_to_8.day48;

import java.util.ArrayList;
import java.util.List;

/**
 * @author haomin
 * @date 2022/08/16 12:02
 **/
public class Day31_2_Num54_SpiralOrder {
    class Solution {
        public List<Integer> spiralOrder(int[][] matrix) {
            List<Integer> res = new ArrayList<>();
            int row = matrix.length; int col = matrix[0].length;
            int l = 0, r = col-1, u = 0, d = row-1;
            while(true){
                for(int i = l;i <= r;i++) res.add(matrix[u][i]); // 首行

                if(++u > d) break;
                for(int i = u;i <= d;i++) res.add(matrix[i][r]); // 右列

                if(--r < l) break;
                for(int i = r;i >= l;i--) res.add(matrix[d][i]); // 尾行

                if(--d < u) break;
                for(int i = d;i >= u;i--) res.add(matrix[i][l]); // 左列

                if(++l > r) break;
            }
            return res;
        }
    }
}